/**
 * ChatSessionMember 表的sql语句实现
 */

#ifndef MYSQL_MYSQL_SESSION_H
#define MYSQL_MYSQL_SESSION_H

#include "database_factory.h"

#include <memory>
#include <odb/database.hxx>
#include <odb/mysql/database.hxx>
#include <string>
#include <vector>

#include "chat_session_member.hxx"

namespace chat {
class ChatSessionMemberTable {
   public:
    ChatSessionMemberTable(const std::shared_ptr<odb::mysql::database>& db) : db_(db) {}
    bool append(ChatSessionMember& session_member);
    bool append(std::vector<ChatSessionMember>& session_members);
    bool remove(const ChatSessionMember& session_member);
    bool remove(const std::string& session_id);
    std::vector<std::string> members(const std::string& session_id);

   private:
    std::shared_ptr<odb::mysql::database> db_ = nullptr;
};
using ChatSessionMemberTablePtr = std::shared_ptr<ChatSessionMemberTable>;
}  // namespace chat

#endif  // MYSQL_MYSQL_SESSION_H